GHashTable *style_data;
GSList *info_stack;
- GtkThemingEngine *theming_engine;
-
GtkTextDirection direction;
GtkCssChange relevant_changes;
style_info_equal,
(GDestroyNotify) style_info_free,
(GDestroyNotify) style_data_free);
- priv->theming_engine = g_object_ref ((gpointer) gtk_theming_engine_load (NULL));
priv->direction = GTK_TEXT_DIR_LTR;
g_slist_free_full (priv->info_stack, (GDestroyNotify) style_info_free);
- if (priv->theming_engine)
- g_object_unref (priv->theming_engine);
-
G_OBJECT_CLASS (gtk_style_context_parent_class)->finalize (object);
}
gtk_widget_path_free (path);
}
- if (priv->theming_engine)
- g_object_unref (priv->theming_engine);
-
- priv->theming_engine = g_object_ref (
- _gtk_css_engine_value_get_engine (
- _gtk_css_computed_values_get_value (info->data->store, GTK_CSS_PROPERTY_ENGINE)));
-
return info->data;
}
gdouble width,
gdouble height)
{
- GtkStyleContextPrivate *priv;
GtkThemingEngineClass *engine_class;
+ GtkThemingEngine *engine;
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
if (width <= 0 || height <= 0)
return;
- priv = context->priv;
- engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
+ engine = _gtk_css_engine_value_get_engine (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_ENGINE));
+ engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
- _gtk_theming_engine_set_context (priv->theming_engine, context);
- engine_class->render_check (priv->theming_engine, cr,
+ _gtk_theming_engine_set_context (engine, context);
+ engine_class->render_check (engine, cr,
x, y, width, height);
cairo_restore (cr);
gdouble width,
gdouble height)
{
- GtkStyleContextPrivate *priv;
GtkThemingEngineClass *engine_class;
+ GtkThemingEngine *engine;
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
if (width <= 0 || height <= 0)
return;
- priv = context->priv;
- engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
+ engine = _gtk_css_engine_value_get_engine (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_ENGINE));
+ engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
- _gtk_theming_engine_set_context (priv->theming_engine, context);
- engine_class->render_option (priv->theming_engine, cr,
+ _gtk_theming_engine_set_context (engine, context);
+ engine_class->render_option (engine, cr,
x, y, width, height);
cairo_restore (cr);
gdouble y,
gdouble size)
{
- GtkStyleContextPrivate *priv;
GtkThemingEngineClass *engine_class;
+ GtkThemingEngine *engine;
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
if (size <= 0)
return;
- priv = context->priv;
- engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
+ engine = _gtk_css_engine_value_get_engine (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_ENGINE));
+ engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
gtk_style_context_save (context);
gtk_style_context_add_class (context, GTK_STYLE_CLASS_ARROW);
- _gtk_theming_engine_set_context (priv->theming_engine, context);
- engine_class->render_arrow (priv->theming_engine, cr,
+ _gtk_theming_engine_set_context (engine, context);
+ engine_class->render_arrow (engine, cr,
angle, x, y, size);
gtk_style_context_restore (context);
gdouble width,
gdouble height)
{
- GtkStyleContextPrivate *priv;
GtkThemingEngineClass *engine_class;
+ GtkThemingEngine *engine;
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
if (width <= 0 || height <= 0)
return;
- priv = context->priv;
- engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
+ engine = _gtk_css_engine_value_get_engine (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_ENGINE));
+ engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
- _gtk_theming_engine_set_context (priv->theming_engine, context);
- engine_class->render_background (priv->theming_engine, cr, x, y, width, height);
+ _gtk_theming_engine_set_context (engine, context);
+ engine_class->render_background (engine, cr, x, y, width, height);
cairo_restore (cr);
}
gdouble width,
gdouble height)
{
- GtkStyleContextPrivate *priv;
GtkThemingEngineClass *engine_class;
+ GtkThemingEngine *engine;
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
if (width <= 0 || height <= 0)
return;
- priv = context->priv;
- engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
+ engine = _gtk_css_engine_value_get_engine (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_ENGINE));
+ engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
- _gtk_theming_engine_set_context (priv->theming_engine, context);
- engine_class->render_frame (priv->theming_engine, cr, x, y, width, height);
+ _gtk_theming_engine_set_context (engine, context);
+ engine_class->render_frame (engine, cr, x, y, width, height);
cairo_restore (cr);
}
gdouble width,
gdouble height)
{
- GtkStyleContextPrivate *priv;
GtkThemingEngineClass *engine_class;
+ GtkThemingEngine *engine;
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
if (width <= 0 || height <= 0)
return;
- priv = context->priv;
- engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
+ engine = _gtk_css_engine_value_get_engine (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_ENGINE));
+ engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
- _gtk_theming_engine_set_context (priv->theming_engine, context);
- engine_class->render_expander (priv->theming_engine, cr, x, y, width, height);
+ _gtk_theming_engine_set_context (engine, context);
+ engine_class->render_expander (engine, cr, x, y, width, height);
cairo_restore (cr);
}
gdouble width,
gdouble height)
{
- GtkStyleContextPrivate *priv;
GtkThemingEngineClass *engine_class;
+ GtkThemingEngine *engine;
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
if (width <= 0 || height <= 0)
return;
- priv = context->priv;
- engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
+ engine = _gtk_css_engine_value_get_engine (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_ENGINE));
+ engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
- _gtk_theming_engine_set_context (priv->theming_engine, context);
- engine_class->render_focus (priv->theming_engine, cr, x, y, width, height);
+ _gtk_theming_engine_set_context (engine, context);
+ engine_class->render_focus (engine, cr, x, y, width, height);
cairo_restore (cr);
}
gdouble y,
PangoLayout *layout)
{
- GtkStyleContextPrivate *priv;
GtkThemingEngineClass *engine_class;
+ GtkThemingEngine *engine;
PangoRectangle extents;
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (PANGO_IS_LAYOUT (layout));
g_return_if_fail (cr != NULL);
- priv = context->priv;
- engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
+ engine = _gtk_css_engine_value_get_engine (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_ENGINE));
+ engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
pango_layout_get_extents (layout, &extents, NULL);
- _gtk_theming_engine_set_context (priv->theming_engine, context);
- engine_class->render_layout (priv->theming_engine, cr, x, y, layout);
+ _gtk_theming_engine_set_context (engine, context);
+ engine_class->render_layout (engine, cr, x, y, layout);
cairo_restore (cr);
}
gdouble x1,
gdouble y1)
{
- GtkStyleContextPrivate *priv;
GtkThemingEngineClass *engine_class;
+ GtkThemingEngine *engine;
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
- priv = context->priv;
- engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
+ engine = _gtk_css_engine_value_get_engine (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_ENGINE));
+ engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
- _gtk_theming_engine_set_context (priv->theming_engine, context);
- engine_class->render_line (priv->theming_engine, cr, x0, y0, x1, y1);
+ _gtk_theming_engine_set_context (engine, context);
+ engine_class->render_line (engine, cr, x0, y0, x1, y1);
cairo_restore (cr);
}
gdouble height,
GtkOrientation orientation)
{
- GtkStyleContextPrivate *priv;
GtkThemingEngineClass *engine_class;
+ GtkThemingEngine *engine;
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
if (width <= 0 || height <= 0)
return;
- priv = context->priv;
- engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
+ engine = _gtk_css_engine_value_get_engine (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_ENGINE));
+ engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
- _gtk_theming_engine_set_context (priv->theming_engine, context);
- engine_class->render_slider (priv->theming_engine, cr, x, y, width, height, orientation);
+ _gtk_theming_engine_set_context (engine, context);
+ engine_class->render_slider (engine, cr, x, y, width, height, orientation);
cairo_restore (cr);
}
gdouble xy0_gap,
gdouble xy1_gap)
{
- GtkStyleContextPrivate *priv;
GtkThemingEngineClass *engine_class;
+ GtkThemingEngine *engine;
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
else
g_return_if_fail (xy1_gap <= width);
- priv = context->priv;
- engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
+ engine = _gtk_css_engine_value_get_engine (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_ENGINE));
+ engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
- _gtk_theming_engine_set_context (priv->theming_engine, context);
- engine_class->render_frame_gap (priv->theming_engine, cr,
+ _gtk_theming_engine_set_context (engine, context);
+ engine_class->render_frame_gap (engine, cr,
x, y, width, height, gap_side,
xy0_gap, xy1_gap);
gdouble height,
GtkPositionType gap_side)
{
- GtkStyleContextPrivate *priv;
GtkThemingEngineClass *engine_class;
+ GtkThemingEngine *engine;
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
if (width <= 0 || height <= 0)
return;
- priv = context->priv;
- engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
+ engine = _gtk_css_engine_value_get_engine (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_ENGINE));
+ engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
- _gtk_theming_engine_set_context (priv->theming_engine, context);
- engine_class->render_extension (priv->theming_engine, cr, x, y, width, height, gap_side);
+ _gtk_theming_engine_set_context (engine, context);
+ engine_class->render_extension (engine, cr, x, y, width, height, gap_side);
cairo_restore (cr);
}
gdouble width,
gdouble height)
{
- GtkStyleContextPrivate *priv;
GtkThemingEngineClass *engine_class;
+ GtkThemingEngine *engine;
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
if (width <= 0 || height <= 0)
return;
- priv = context->priv;
- engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
+ engine = _gtk_css_engine_value_get_engine (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_ENGINE));
+ engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
- _gtk_theming_engine_set_context (priv->theming_engine, context);
- engine_class->render_handle (priv->theming_engine, cr, x, y, width, height);
+ _gtk_theming_engine_set_context (engine, context);
+ engine_class->render_handle (engine, cr, x, y, width, height);
cairo_restore (cr);
}
gdouble width,
gdouble height)
{
- GtkStyleContextPrivate *priv;
GtkThemingEngineClass *engine_class;
+ GtkThemingEngine *engine;
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
if (width <= 0 || height <= 0)
return;
- priv = context->priv;
- engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
+ engine = _gtk_css_engine_value_get_engine (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_ENGINE));
+ engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
- _gtk_theming_engine_set_context (priv->theming_engine, context);
- engine_class->render_activity (priv->theming_engine, cr, x, y, width, height);
+ _gtk_theming_engine_set_context (engine, context);
+ engine_class->render_activity (engine, cr, x, y, width, height);
cairo_restore (cr);
}
const GtkIconSource *source,
GtkIconSize size)
{
- GtkStyleContextPrivate *priv;
GtkThemingEngineClass *engine_class;
+ GtkThemingEngine *engine;
g_return_val_if_fail (GTK_IS_STYLE_CONTEXT (context), NULL);
g_return_val_if_fail (size > GTK_ICON_SIZE_INVALID || size == -1, NULL);
g_return_val_if_fail (source != NULL, NULL);
- priv = context->priv;
- engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
+ engine = _gtk_css_engine_value_get_engine (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_ENGINE));
+ engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
- _gtk_theming_engine_set_context (priv->theming_engine, context);
- return engine_class->render_icon_pixbuf (priv->theming_engine, source, size);
+ _gtk_theming_engine_set_context (engine, context);
+ return engine_class->render_icon_pixbuf (engine, source, size);
}
/**
gdouble x,
gdouble y)
{
- GtkStyleContextPrivate *priv;
GtkThemingEngineClass *engine_class;
+ GtkThemingEngine *engine;
g_return_if_fail (GTK_IS_STYLE_CONTEXT (context));
g_return_if_fail (cr != NULL);
- priv = context->priv;
- engine_class = GTK_THEMING_ENGINE_GET_CLASS (priv->theming_engine);
+ engine = _gtk_css_engine_value_get_engine (_gtk_style_context_peek_property (context, GTK_CSS_PROPERTY_ENGINE));
+ engine_class = GTK_THEMING_ENGINE_GET_CLASS (engine);
cairo_save (cr);
- _gtk_theming_engine_set_context (priv->theming_engine, context);
- engine_class->render_icon (priv->theming_engine, cr, pixbuf, x, y);
+ _gtk_theming_engine_set_context (engine, context);
+ engine_class->render_icon (engine, cr, pixbuf, x, y);
cairo_restore (cr);
}